////////////////////////////////////////////////
// MACHINE GENERATED, PLEASE DONOT MODIFY!    //
////////////////////////////////////////////////

#pragma once

#include <functional>
#include <memory>
#include <ctime>
#include <google/protobuf/message.h>

#include "../common/generated_proto_header.hh"
#include "../../plugin/base/rpc_define.hh"

#include "rpc_id.inl"

using AckFunction=std::function<void(const Message&)>;

class ISample {
public:
	virtual void echo(const Message&, Message&)=0;
	virtual void echo1(const Message&, Message&)=0;
};
class SampleProxy {
public:
	virtual bool echo(const Message&, AckFunction ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
	virtual bool echo1(const Message&, AckFunction ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
};
class ISample1 {
public:
	virtual void echo(const Message&, Message&)=0;
	virtual void echo1(const Message&, Message&)=0;
};
class Sample1Proxy {
public:
	virtual bool echo(const Message&, AckFunction ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
	virtual bool echo1(const Message&, AckFunction ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
};
